package com.ehotting.edsta.circuitDesign.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONArray;
import com.ehotting.eaf.core.domain.R;
import com.ehotting.edsta.circuitDesign.domain.EsCircuit;
import com.ehotting.eaf.core.web.domain.AjaxResult;
import org.springframework.web.multipart.MultipartFile;

/**
 * 电路Service接口
 * 
 * @author edsta
 * @date 2023-05-05
 */
public interface IEsCircuitService
{
    /**
     * 查询应用场景
     */
    public EsCircuit selectEsCircuitById(Long id);

    /**
     * 查询应用场景列表
     */
    public List<EsCircuit> selectEsCircuitList(EsCircuit esCircuit);

    /**
     * 新增应用场景
     */
    public int insertEsCircuit(EsCircuit esCircuit);

    void insertEsCircuits(List<EsCircuit> esCircuits);

    int batchInsert(List<EsCircuit> esCircuitList);

    /**
     * 修改应用场景
     */
    public int updateEsCircuit(EsCircuit esCircuit);

    /**
     * 批量删除应用场景
     */
    public int deleteEsCircuitByIds(Long[] ids);

    /**
     * 删除应用场景信息
     */
    public int deleteEsCircuitById(Long id);

    /**
     * 执行脚本
     *
     */
    public String execute(Long circuitId, Long ruleId, Map<String,Object> params);

    public List<EsCircuit> findByCircuitTypeId(Long circuitTypeId);

    /**
     * 根据电路id查找电路
     */
    public List<EsCircuit> seEsCircuitByIds(Long[] ids);

    /**
     * 检查电路数据表格
     */
    R circuitExcelDataCheck(MultipartFile file,String step);

    public void loadProp(EsCircuit esCircuit);

    /**
     * 根据电路类型查找电路id
     */
    public List<Long> findIdsByTypeId(Long circuitTypeId);

    /**
     * 加载电路属性进缓存
     */
    public void loadProperty();

    /**
     * 上传目录结构
     */
    public boolean filesVerify(JSONArray jsonArray);

    /**
     * 获取缺失目录
     */
    Map<String, Object> getFileLackList(int page);

    JSONArray fileLackListDownload();

    Map<String, Object> getNoExistList(int page);

    JSONArray NoExistListDownload();

    JSONArray checkDocumentLibrary();

    JSONArray checkDocumentLibraryDownload();
}
